package com.znsd.zl.sys.sms.config;

import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.profile.DefaultProfile;
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @ClassName AliSmsConfig
 * @Description 阿里云短信配置类
 * @Author jaypdd
 * @Date 2020/8/18 19:49
 * @Version v1.0
 */
@Data
@Configuration
public class AliSmsConfig {

	/**
	 * 必填：AccessKey ID
	 */
	@Value("${ali.sms.accessKeyId}")
	private String accessKeyId;

	/**
	 * 必填：AccessKey Secret
	 */
	@Value("${ali.sms.accessSecret}")
	private String accessSecret;

	/**
	 * 必填：短信签名
	 */
	@Value("${ali.sms.singName}")
	private String singName;

	/**
	 * 短信模板
	 */
	@Value("${ali.sms.templateCode}")
	private String templateCode;

	/**
	 * 产品名称：阿里云短信API产品
	 */
	@Value("${ali.sms.product}")
	private String product;

	/**
	 * 产品域名
	 */
	@Value("${ali.sms.endpoint}")
	private String endpoint;

	/**
	 * 将阿里短信服务接口调用客户端组件添加到容器中
	 * @return IAcsClient阿里短信服务接口调用客户端对象
	 */
	@Bean
	public IAcsClient ascClient() {
		// 配置阿里短信服务接口基本配置信息，并初始化阿里短信请求客户端实例
		DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou",
				accessKeyId, accessSecret);
		DefaultProfile.addEndpoint("cn-hangzhou", product, endpoint);
		return new DefaultAcsClient(profile);
	}

}
